home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus Leser 19
/
Amiga Plus Leser CD 19.iso
/
Tools
/
Freeware
/
PerfectPaint
/
rexx
/
Anim
/
FrameTransition.rx
< prev
next >
Wrap
Text File
|
2001-10-01
|
6KB
|
376 lines
/* arexx Script
Fade in Black
*/
call addlib("rexxmathlib.library", 5, -30, 0)
options results
parse ARG Port b
ADDRESS value Port
pp_CountFrames
nb=result
if nb<2 then do
pp_Warn 'Make*an*Anim*first.'
EXIT
end
pp_GetWidth
w=result
pp_GetHeight
h=result
pp_GetDepth
D=result
Mode=0
Effect=0
kca=0
Fade=0
pp_DialogInit 250 160 "*Frame*Transition*" 6
pp_Slider 0 100 5 100 16 "First*Frame*#" 1 1 nb 1
pp_Slider 1 100 25 100 16 "Last*Frame*#" 1 1 nb nb
pp_Cycle 2 150 45 50 16 "Keep*Current*Anim" 1 "No|Yes" kca
pp_Cycle 3 100 65 100 16 "Mode" 1 "In|Out" Mode
pp_Cycle 4 100 85 100 16 "Fade" 1 "No|Yes" Fade
pp_Cycle 5 100 105 100 16 "Effect" 1 "None|Circle|Box|Linear*H|Linear*V|Spray|SinWave|Twirl|Mosaic" Effect
pp_Dialog
rc=result
if rc=0 then
do
EXIT
end
pp_GetDialog 0
s0=result
pp_GetDialog 1
s1=result
pp_GetDialog 2
kca=result
pp_GetDialog 3
Mode=result
pp_GetDialog 4
Fade=result
pp_GetDialog 5
Effect=result
pp_ComposeReqOff
IF Effect=8 then DO
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
pp_SetBrush Brush
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
step=(s1-s0)
Step_f0=30/Step
pp_Compose 0 100 0
pp_EffectOn
do i=s0 to s1
pp_GotoFrame i
f0=Step_f0*(i-s0)
IF kca=0 then DO
pp_EffectOff
pp_Plot W/2 H/2
pp_EffectOn
END
f0=trunc(f0+0.5,0)
if f0>1 then DO
pp_Mosaic f0
pp_boxf 0 0 W H
END
END
Step_f=100/Step
Step_f0=-30/Step
pp_GotoFrame s0
pp_SpareOnOff
pp_PickBrush 0 0 W H 1
pp_SpareOnOff
do i=s0 to s1
pp_GotoFrame i
pp_SpareOnOff
pp_EffectOff
pp_Plot W/2 H/2
pp_EffectOn
f0=30+Step_f0*(i-s0)
f=Step_f*(i-s0)
pp_Compose 0 100 0
f0=trunc(f0+0.5,0)
if f0>1 then DO
pp_Mosaic f0
pp_boxf 0 0 W H
END
pp_SpareOnOff
pp_Spare
pp_Compose 0 f 0
pp_boxf 0 0 W H
END
pp_Gotoframe s0
pp_FreeBrush
pp_SetBrush CB
END
IF Effect=7 then DO
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
pp_SetBrush Brush
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
step=(s1-s0)
Step_f0=-180/Step
pp_Compose 0 100 0
pp_EffectOn
do i=s0 to s1
pp_GotoFrame i
f0=Step_f0*(i-s0)
IF kca=0 then DO
pp_EffectOff
pp_Plot W/2 H/2
pp_EffectOn
END
f0=trunc(f0)
if f0~=0 then DO
pp_Twirl f0
pp_boxf 0 0 W H
END
END
Step_f=100/Step
Step_f0=180/Step
pp_GotoFrame s0
pp_SpareOnOff
pp_PickBrush 0 0 W H 1
pp_SpareOnOff
do i=s0 to s1
pp_GotoFrame i
pp_SpareOnOff
pp_EffectOff
pp_Plot W/2 H/2
pp_EffectOn
f0=-180+Step_f0*(i-s0)
f=Step_f*(i-s0)
pp_Compose 0 100 0
f0=trunc(f0)
if f0~=0 then DO
pp_Twirl f0
pp_boxf 0 0 W H
END
pp_SpareOnOff
pp_Spare
pp_Compose 0 f 0
pp_boxf 0 0 W H
END
pp_Gotoframe s0
pp_FreeBrush
pp_SetBrush CB
END
IF Effect=6 then DO
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
pp_SetBrush Brush
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
step=(s1-s0)
Step_f0=-10/Step
Step_f1=1000/Step
pp_Compose 0 100 0
pp_EffectOn
do i=s0 to s1
pp_GotoFrame i
f0=Step_f0*(i-s0)
f1=Step_f1*(i-s0)
IF kca=0 then DO
pp_EffectOff
pp_Plot W/2 H/2
pp_EffectOn
END
pp_Sin 1 trunc(f0) trunc(f1) trunc(f0) trunc(f1)
pp_boxf 0 0 W H
END
Step_f=100/Step
Step_f0=10/Step
Step_f1=-1000/Step
pp_GotoFrame s0
pp_SpareOnOff
pp_PickBrush 0 0 W H 1
pp_SpareOnOff
do i=s0 to s1
pp_GotoFrame i
pp_SpareOnOff
pp_EffectOff
pp_Plot W/2 H/2
pp_EffectOn
f0=-10+Step_f0*(i-s0)
f1=1000+Step_f1*(i-s0)
f=Step_f*(i-s0)
pp_Compose 0 100 0
pp_Sin 1 trunc(f0) trunc(f1) trunc(f0) trunc(f1)
pp_boxf 0 0 W H
pp_SpareOnOff
pp_Spare
pp_Compose 0 f 0
pp_boxf 0 0 W H
END
pp_Gotoframe s0
pp_Sin 1 30 1000 30 1000
pp_FreeBrush
pp_SetBrush CB
END
IF Effect=5 then DO
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
pp_SetBrush Brush
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
step=(s1-s0)
Step_f=100/Step
pp_Spray 2 0
pp_EffectOn
DO i=s0 to s1
pp_GotoFrame i
if kca=0 then DO
pp_EffectOff
pp_plot W/2 H/2
pp_EffectOn
END
f=Step_f*(i-s0)
pp_Spray 2 f
pp_boxf 0 0 W H
END
pp_FreeBrush
pp_SetBrush CB
END
IF Effect=0 then DO
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
pp_SetBrush Brush
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
step=(s1-s0)
Step_f=100/Step
pp_Spare
pp_EffectOn
DO i=s0 to s1
pp_GotoFrame i
if kca=0 then DO
pp_EffectOff
pp_Compose 0 100 0
pp_plot W/2 H/2
pp_EffectOn
END
f=Step_f*(i-s0)
pp_Compose 0 f 0
pp_boxf 0 0 W H
END
pp_FreeBrush
pp_SetBrush CB
END
IF Effect=1 then DO
pp_GetCurrentBrush
CB=result
pp_FindEmptyBrush
Brush=result
pp_SetBrush Brush
IF Mode=0 then DO
pp_GotoFrame s1
pp_PicttoSpare
pp_GotoFrame s0
pp_Pickbrush 0 0 W H 1
C0=0
C1=sqrt(W**2+H**2)
END
ELSE DO
pp_GotoFrame s1
pp_Pickbrush 0 0 W H 1
pp_GotoFrame s0
pp_PicttoSpare
C1=0
C0=sqrt(W**2+H**2)
END
step=(s1-s0)
Step_c=(C1-C0)/Step
Step_f=100/Step
pp_Spare
pp_Compose 0 100 0
DO i=s0 to s1
pp_GotoFrame i
c=(C0+Step_c*(i-s0))/2
f=Step_f*(i-s0)
pp_EffectOff
IF kca=0 then DO
pp_PenType 6
pp_plot W/2 H/2
END
ELSE DO
IF Mode=1 then DO
pp_PicttoSpare
pp_PenType 6
pp_plot W/2 H/2
END
END
pp_EffectOn
pp_PenType 0
IF Fade=1 then DO
pp_Compose 0 f 0
END
pp_Circlef W/2 H/2 trunc(c)
END
pp_FreeBrush
pp_SetBrush CB
END
pp_EffectOff
pp_ComposeReqOn
EXIT